package servidorapjava.dados;

import apjava.basico.ClienteModel;
import apjava.basico.Informacao;
import servidorapjava.dados.comandos.ComandoServidor;
import servidorapjava.dados.exceptions.ComandoException;

public class TratadorInformacaoServidor extends TratadorInformacaoPadrao implements Runnable {
    
    private ClienteModel cliente;
    
    private Informacao info;
    
    public TratadorInformacaoServidor(Informacao info, ClienteModel cliente) {
        this.info = info;
        this.cliente = cliente;
    }
    
    
    public void run() {
        System.out.println("Tratando informacao do tipo: " + info.getTipo());
        ComandoServidor cmd = listaComandos.get(info.getTipo());
        if(cmd == null) {
            System.out.println("Comando nao encontrado: " + info.getTipo());
            return;
        }
        
        try {
            System.out.println("antes de executar a o comando: "+cmd.getClass().getName());
            cmd.executar(this.info, this.cliente);
        } catch (ComandoException ex) {
            ex.printStackTrace();
        }
    }
    
}
